main(){
  // 定义一个可空字符串
  String? name ;
  // 访问可空字符串

  print(name);
  print(name?.length);
  // 3.?. 可以使用在可空字符串上，因为如果字符串为空，会返回null，不会导致空指针异常
  print(name?.toLowerCase());
  /**
   * 空值合并运算符
   */
  // 1.?? 不能使用 || 运算符，因为 || 运算符是短路运算符，会导致空指针异常
  print(name??"默认值");
  name ??= "张三";
  print(name);
  //非空断言运算符 ！
  print(name!.length);
  // 2.！ 不能使用在可空字符串上，因为如果字符串为空，会导致空指针异常
  // print(name!.toLowerCase());
}